package com.kaifamiao.tree;

import java.util.Collection;
import java.util.Comparator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;

public class SortedMapTest {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		
		// 使用 Map 接口中的 static 方法创建一个不可变的 Map集合
		Map<String,Integer> m = Map.of( "红烧肉" , 20 , "盐煎肉" , 14 , "回锅肉" , 16 , "小炒肉" , 18 );
		
		SortedMap<String,Integer> map = new TreeMap<>();
		// 将另外一个 Map 中所有的映射项添加到当前 Map 中
		map.putAll( m );
		System.out.println( map );
		
		System.out.println( map.firstKey() );
		System.out.println( map.lastKey() );
		
		// SortedMap<K,V> subMap( K fromKey , K toKey )
		SortedMap<String,Integer> sub = map.subMap( "小炒肉" , "红烧肉" );
		System.out.println( sub );
		
		// SortedMap<K,V> headMap( K toKey )
		sub = map.headMap( "盐煎肉" );
		System.out.println( sub );
		
		// SortedMap<K,V> tailMap( K fromKey )
		sub = map.tailMap( "小炒肉" );
		System.out.println( sub );
		
		// 获得SortedMap实例内部的比较器(若不存在则返回null)
		Comparator<String> comp = (Comparator<String>)map.comparator(); 
		System.out.println( comp );
		
		Set<String> set = map.keySet();
		System.out.println( set );
		
		Collection<Integer> values = map.values();
		System.out.println( values );
		
		Set< Map.Entry<String,Integer> > entries = map.entrySet();
		System.out.println( entries );

	}

}
